强化学习通俗理解系列二:马尔科夫决策过程MDP
作者:黄海安
编辑:陈人和
前 言
第二篇文章是整个强化学习基础知识中最重要的,请大家保持警惕。前面系列一我把马尔科夫奖赏过程的全部内容讲完了,下面开始分析马尔科夫决策过程,写作思路依然是参考Divad Silver强化学习课程ppt,由于本人水平有限,如有问题,欢迎指正,我即时修改,谢谢!
本文思路:
1. 马尔科夫决策过程的基本定义
2. 策略policy
3. 策略policy进阶
4. 值函数
5. 贝尔曼期望方程
6. 贝尔曼期望方程的矩阵形式
7. 最优值函数Optimal Value Function
8. 最优策略Optimal Policy
9. 贝尔曼最优方程 Bellman Optimality Equation
10. 总结
马尔科夫决策过程(Markov Decision Process,,MDP)基础定义
马尔科夫奖赏过程是在马尔科夫过程基础上增加了奖励和衰减因子,从而引入了状态值函数,而马尔科夫决策过程MDP是在马尔科夫奖赏过程基础上引入了action或者说决策,从而将问题彻底转化为了决策问题,这才真正进入了强化学习路线!MDP问题虽然是加了决策,但是优化对象依然是值函数(当然还可以其他方式,例如最优策略),当最优的值函数求出后,最优决策其实也就确定了,后面会细说。
MDP的官方定义如下:
可以明显看出,和MRP的不同就是多引入了一个A,代表一系列动作集。同时需要注意了:相应的P和R都已经改变了,都是需要考虑A的,也就是说由于action的引入会影响状态转移矩阵P和相应的回报R,这是非常容易理解的,比如说平时我骂你,你可能不会转移到生气这个状态,但是如果我打你一下,再骂你的话,那么你就很可能会转移到生气这个状态了。当然回报也是有影响的。依然以学生为例,现在学生的状态转移图变成了如下图:
作为对比,可以看下以前的图:
大家发现区别了吧。同一个状态下采取不同的行为得到的即时奖励是不一样的。MRP里面的状态现在变成了MDP里面的ation,而MDP里面的状态就直接用空心圆圈代替了,也就是说MDP和MRP即使都是求最优值函数,但是意义是不一样的,MDP求出的最优值函数其实就直接表征了最优决策。大家要习惯这种转变。
策略policy
既然引入了动作,那么就需要引入新的概念了。策略
policy的定义是:
策略policy进阶
刚才说过引入了策略
按照ppt中标准写法是:当给
举上图例子来说明:为了方便表述,将MRP中{facebook,class1,class2,class3,pass,pub,sleep}状态顺序对应的MDP中的空心圆圈状态{s1,s2,s3,s4,s5},我没有画图,大家应该知道哪个对应哪个吧?假设要计算
值函数
前面算了一大堆的
状态值函数的定义没变,只不过多了一个动作值函数或者行为值函数,表示在执行策略π时,对当前状态s执行某一具体行为a所能的到的收获的期望;或者说在遵循当前策略π时,衡量对当前状态执行行为a的价值大小。这样看感觉不好理解,下面看具体例子:
例如要求2.7那个状态下的值函数
贝尔曼期望方程
前面只是定义了MDP下的状态值函数和行为值函数,但是直接算是算不出来的,这是贝尔曼期望方程就出场了。贝尔曼期望方程是用于将值函数转化为迭代求解方程,使得问题更容易求解。大家如果理解了MRP中的贝尔曼方程,那么这里也非常好理解了。首先是状态值函数
同样,动作值函数
,是不是感觉很乱,看到下面的图你就会豁然开朗了:
图中,空心白圆圈是状态-状态值函数对;黑心实圆圈是动作-动作值函数对
可以看出,状态值函数v和动作值函数q是有关系的
如果不打算显视的求动作值函数,那么可以使用上图形式。
如果不打算显示的求状态值函数,那么可以使用上图形。看到了没,通过贝尔曼期望方程,这样就转化为了迭代形式了,求解就容易多了。
依然以学生为例:
计算
的值,这是允许的,因为循环迭代更新嘛!到这里就真的可以算出每个状态的值函数了。
贝尔曼期望方程的矩阵形式
和MRP一样,可以写成矩阵形式:
同样的,小规模问题可以直接求解,大规模问题采用迭代法。
7
最优值函数Optimal Value Function
好了,现在我们已经能算任意给定策略action下,每个状态的值函数取值了,不管你是采用迭代法还是线性代数法。但是现在又有一个问题了:那么哪种策略下,能够使得状态s的值函数最大呢?因为一旦我们找出来最优值函数,也就是找出来最优策略,然后一直执行该策略就好了。举例说明:假设要训练一个机器人快速走迷宫,现在我给定一些策略,该策略可以使得机器人走出去,在该策略下,我通过迭代法可以求出每个状态的值函数,然后依据累积回报最大化原则,就可以选出一条当前最优的策略了,但是你确定你给的就是最优策略了吗?假设我再给其他一些策略,它得到的状态值函数更大呢,那么说明我给的策略是更优的。现在有一个疑问:既然我自己知道最优路径是哪个,那我就直接给定最优策略就好了嘛,还强化学习啥呀?其实不是的,对于特别复杂问题,我们自己也不知道最优策略是啥,只能通过机器人自己探索和开发出来,不需要人为的干扰,这就涉及到后面的策略估计和策略提升步骤了。上面我们举的学生例子,他的策略是已经给定了,虽然策略也是一个概率分布。
上面是一些补充说明,下面是正式定义:
最优状态价值函数
最优状态值函数如上图
最优行为值函数如上图,后面在进行分析。对于上面两幅图中的数字具体是如何算出来的,暂时可以不用管,其实可以通过后面的贝尔曼最优方程解出来的。
最优策略Optimal Policy
最优策略的定义如下:
关于MDP的最优策略,有如下定理:
1. 对于任何MDP问题,存在一个最优策略,好于(至少相等)任何其他策略
2. 所有的最优策略下都有相同的最优价值函数
3. 所有的最优策略下都具有相同的行为价值函数
既然有上述定理,那么寻找最优策略就可以通过最大化最优行为价值函数来得到。同时如果我们知道最优行为价值函数,则表明我们找到了最优策略,也就是说寻找最优策略可以通过寻找最优状态值函数得到。寻找最优策略的定义如下:
以学生为例子,其最优策略如下(红色的弧代表在该状态下最优的动作,所有的状态和相应的动作组合起来也就是最优的策略):
这幅图是告诉我们:如果已经求出了最优值函数,那么最优策略是非常容易求出来的;当然我也可以使用其他办法不求最优值函数,而是直接求最优策略。
贝尔曼最优方程 Bellman Optimality Equation
在最优值函数中,如果求出了最优状态值函数,其实也就求出了最优行为值函数,反之同理;在最优策略中,如果求出了最优值函数,那么最优策略就求出来了,反之同理;这样就把最优策略、最优状态值函数、最优行为值函数联系起来了。好的,前面假设了一大堆前提,那么如何求最优状态值函数或者最优行为值函数呢?这就需要使用本节的贝尔曼最优方程了。针对
上图表示左边的action可以产生最大的价值,所以应该选择左边的策略。
针对
同理,把他们合并就可以得到
以上两个方程是最重要的两个贝尔曼最优化方程,请牢记。依然以学生为例,如图所示:
图片中标注的数值是根据贝尔曼最优值函数算出来的。
可以看出,贝尔曼最优方程含有max,他是非线性的,没有固定的解决方案,但是一般通过一些迭代方法来解决:价值迭代;策略迭代;Q学习;Sarsa等。只要采用这些方法把最优状态值函数、最优行为值函数或者最优策略求出来了,那么MDP就完全解决了。
好的,MDP的所有基础知识全部讲完了,这里来总结一下序列一和序列二:
(1) 说明了强化学习是什么?和常用的机器学习算法有啥区别?
(2) 针对马尔科夫过程进行分析,如果模型是已知的(模型的意思可以理解为对实际环境的理解,简单来说就是状态转移概率是已知的),那么就是马尔科夫链;如果模型是未知的,那就是隐马尔科夫模型;
(3) 在马尔科夫过程基础上,添加reward,就变成了马尔科夫奖赏过程。由于reward的引入,就出现了值函数的概念,表征各状态下累积回报大小;
(4) 针对值函数求解困难问题,引入了贝尔曼期望方程,其将值函数转化为迭代方程,可以方便求解;
(5) 在马尔科夫奖赏过程基础上,引入动作action,就变成了马尔科夫决策过程;
(6) 由于action的引入,并且其也是一个关于状态的分布,故而引入policy的概念,同时状态转移概念和reward也会发生改变,都和action有关了;
(7) 由于action的引入,我们需要评估在不同状态下执行某一action后得到的累计回报大小,故而引入动作值函数;
(8) 状态值函数和动作值函数直接求解也非常困难,所以依然要引入贝尔曼期望方程,将其转化为迭代形式,方便求解;
(9) 贝尔曼期望方程虽然可以求解出某一策略下值函数的取值,但是还没有求解出最优决策,所以根据决策问题的定义,首先分析了最优值函数和最优策略一定要满足的关系式,或者说只有在达到最优策略的时候才会满足等式,即最优值函数和最优策略为我们强化学习提供了优化方向,而贝尔曼最优方程则提供了实际的解决思路。
(10) 后面的内容是:如何真正利用贝尔曼期望方程和贝尔曼最优方程解决实际问题,这就又分为两个研究分支了,如果model(P,R)已知,那么贝尔曼期望方程和贝尔曼最优方程就是用于解决规划planning问题,如果model(P,R)未知,那就是贝尔曼期望方程和贝尔曼最优方程就是用于解决Rl问题了。
由于水平有限,如有疑问,欢迎加群交流678455658。
1. David Silvr强化学习课程,b站有视频
end
机器学习算法全栈工程师
一个用心的公众号
进群,学习,得帮助
你的关注,我们的热度,
我们一定给你学习最大的帮助